// node 31_判断变量是数组还是方法.js

//instanceof 判断一个变量是否属于某个类型

let a = {}//定义了一个对象
let b = []//定义了一个数组

//使用typeof都输出object,不能判断
console.log(typeof a) //输出：object
console.log(typeof b) //输出：object

//方法1：使用instanceof
//能够使用instanceof判断是否是数组，但对象和数组调用instanceof Object都输出true
console.log('方法1：')
console.log(a instanceof Object)//输出：true
console.log(b instanceof Object)//输出：true
console.log(a instanceof Array)//输出：false
console.log(b instanceof Array)//输出：true

//方法2：输出的原型不同(constructor为指向原型的指针)
console.log('方法2：')
console.log(a.constructor)//输出：[Function: Object]
console.log(b.constructor)//输出：[Function: Array]

//方法3：使用toString()
//推荐使用此方法
console.log('方法3：')
console.log(Object.prototype.toString.call(a))//输出：[object Object]
console.log(Object.prototype.toString.call(b))//输出：[object Array]